#ifndef RENDER_INTERFACE_DEF_H
#define RENDER_INTERFACE_DEF_H

/*
** This file was machine generated by idltool 51.3.
** Do not edit
*/ 

#ifndef EXEC_TYPES_H
#include <exec/types.h>
#endif
#ifndef EXEC_EXEC_H
#include <exec/exec.h>
#endif
#ifndef EXEC_INTERFACES_H
#include <exec/interfaces.h>
#endif

#ifndef GRAPHICS_GFX_H
#include <graphics/gfx.h>
#endif
#ifndef UTILITY_HOOKS_H
#include <utility/hooks.h>
#endif
#ifndef UTILITY_TAGITEM_H
#include <utility/tagitem.h>
#endif

struct RenderIFace
{
	struct InterfaceData Data;

	ULONG APICALL (*Obtain)(struct RenderIFace *Self);
	ULONG APICALL (*Release)(struct RenderIFace *Self);
	void APICALL (*Expunge)(struct RenderIFace *Self);
	struct Interface * APICALL (*Clone)(struct RenderIFace *Self);
	void APICALL (*TurboFillMem)(struct RenderIFace *Self, APTR dst, ULONG len, ULONG val);
	void APICALL (*TurboCopyMem)(struct RenderIFace *Self, APTR src, APTR dst, ULONG len);
	APTR APICALL (*CreateRMHandlerA)(struct RenderIFace *Self, struct TagItem * taglist);
	APTR APICALL (*CreateRMHandler)(struct RenderIFace *Self, ...);
	void APICALL (*DeleteRMHandler)(struct RenderIFace *Self, APTR rmh);
	APTR APICALL (*AllocRenderMem)(struct RenderIFace *Self, APTR rendermemhandler, ULONG size);
	void APICALL (*FreeRenderMem)(struct RenderIFace *Self, APTR rendermemhandler, APTR mem, ULONG size);
	APTR APICALL (*AllocRenderVec)(struct RenderIFace *Self, APTR rendermemhandler, ULONG size);
	void APICALL (*FreeRenderVec)(struct RenderIFace *Self, APTR mem);
	APTR APICALL (*CreateHistogramA)(struct RenderIFace *Self, struct TagItem * taglist);
	APTR APICALL (*CreateHistogram)(struct RenderIFace *Self, ...);
	void APICALL (*DeleteHistogram)(struct RenderIFace *Self, APTR histogram);
	ULONG APICALL (*QueryHistogram)(struct RenderIFace *Self, APTR histogram, Tag d0arg);
	ULONG APICALL (*AddRGB)(struct RenderIFace *Self, APTR histogram, ULONG RGB, ULONG count);
	ULONG APICALL (*AddRGBImageA)(struct RenderIFace *Self, APTR histogram, ULONG * rgb, UWORD width, UWORD height, struct TagItem * taglist);
	ULONG APICALL (*AddRGBImage)(struct RenderIFace *Self, APTR histogram, ULONG * rgb, UWORD width, UWORD height, ...);
	ULONG APICALL (*AddChunkyImageA)(struct RenderIFace *Self, APTR histogram, UBYTE * chunky, UWORD width, UWORD height, APTR palette, struct TagItem * taglist);
	ULONG APICALL (*AddChunkyImage)(struct RenderIFace *Self, APTR histogram, UBYTE * chunky, UWORD width, UWORD height, APTR palette, ...);
	ULONG APICALL (*ExtractPaletteA)(struct RenderIFace *Self, APTR histogram, ULONG * palette, UWORD numcolors, struct TagItem * taglist);
	ULONG APICALL (*ExtractPalette)(struct RenderIFace *Self, APTR histogram, ULONG * palette, UWORD numcolors, ...);
	ULONG APICALL (*RenderA)(struct RenderIFace *Self, ULONG * rgb, UWORD width, UWORD height, UBYTE * chunky, APTR palette, struct TagItem * taglist);
	ULONG APICALL (*Render)(struct RenderIFace *Self, ULONG * rgb, UWORD width, UWORD height, UBYTE * chunky, APTR palette, ...);
	void APICALL (*Planar2ChunkyA)(struct RenderIFace *Self, PLANEPTR * planetab, UWORD bytewidth, UWORD height, UWORD depth, UWORD bytesperrow, UBYTE * chunky, struct TagItem * taglist);
	void APICALL (*Planar2Chunky)(struct RenderIFace *Self, PLANEPTR * planetab, UWORD bytewidth, UWORD height, UWORD depth, UWORD bytesperrow, UBYTE * chunky, ...);
	ULONG APICALL (*Chunky2RGBA)(struct RenderIFace *Self, UBYTE * chunky, UWORD width, UWORD height, ULONG * rgb, APTR palette, struct TagItem * taglist);
	ULONG APICALL (*Chunky2RGB)(struct RenderIFace *Self, UBYTE * chunky, UWORD width, UWORD height, ULONG * rgb, APTR palette, ...);
	void APICALL (*Chunky2BitMapA)(struct RenderIFace *Self, UBYTE * chunky, UWORD sx, UWORD sy, UWORD width, UWORD height, struct BitMap * bitmap, UWORD dx, UWORD dy, struct TagItem * taglist);
	void APICALL (*Chunky2BitMap)(struct RenderIFace *Self, UBYTE * chunky, UWORD sx, UWORD sy, UWORD width, UWORD height, struct BitMap * bitmap, UWORD dx, UWORD dy, ...);
	APTR APICALL (*CreateScaleEngineA)(struct RenderIFace *Self, UWORD sourcewidth, UWORD sourceheight, UWORD destwidth, UWORD destheight, struct TagItem * taglist);
	APTR APICALL (*CreateScaleEngine)(struct RenderIFace *Self, UWORD sourcewidth, UWORD sourceheight, UWORD destwidth, UWORD destheight, ...);
	void APICALL (*DeleteScaleEngine)(struct RenderIFace *Self, APTR engine);
	ULONG APICALL (*ScaleA)(struct RenderIFace *Self, APTR engine, APTR source, APTR dest, struct TagItem * taglist);
	ULONG APICALL (*Scale)(struct RenderIFace *Self, APTR engine, APTR source, APTR dest, ...);
	ULONG APICALL (*ConvertChunkyA)(struct RenderIFace *Self, UBYTE * source, APTR oldpalette, UWORD width, UWORD height, UBYTE * dest, APTR newpalette, struct TagItem * taglist);
	ULONG APICALL (*ConvertChunky)(struct RenderIFace *Self, UBYTE * source, APTR oldpalette, UWORD width, UWORD height, UBYTE * dest, APTR newpalette, ...);
	void APICALL (*CreatePenTableA)(struct RenderIFace *Self, UBYTE * chunky, APTR oldpalette, UWORD width, UWORD height, APTR newpalette, UBYTE * convtab, struct TagItem * taglist);
	void APICALL (*CreatePenTable)(struct RenderIFace *Self, UBYTE * chunky, APTR oldpalette, UWORD width, UWORD height, APTR newpalette, UBYTE * convtab, ...);
	APTR APICALL (*CreatePaletteA)(struct RenderIFace *Self, struct TagItem * taglist);
	APTR APICALL (*CreatePalette)(struct RenderIFace *Self, ...);
	void APICALL (*DeletePalette)(struct RenderIFace *Self, APTR palette);
	void APICALL (*ImportPaletteA)(struct RenderIFace *Self, APTR palette, APTR coltab, UWORD numcols, struct TagItem * taglist);
	void APICALL (*ImportPalette)(struct RenderIFace *Self, APTR palette, APTR coltab, UWORD numcols, ...);
	void APICALL (*ExportPaletteA)(struct RenderIFace *Self, APTR palette, APTR coltab, struct TagItem * taglist);
	void APICALL (*ExportPalette)(struct RenderIFace *Self, APTR palette, APTR coltab, ...);
	ULONG APICALL (*CountRGB)(struct RenderIFace *Self, APTR histogram, ULONG rgb);
	LONG APICALL (*BestPen)(struct RenderIFace *Self, APTR palette, ULONG rgb);
	void APICALL (*FlushPalette)(struct RenderIFace *Self, APTR palette);
	ULONG APICALL (*SortPaletteA)(struct RenderIFace *Self, APTR palette, ULONG mode, struct TagItem * taglist);
	ULONG APICALL (*SortPalette)(struct RenderIFace *Self, APTR palette, ULONG mode, ...);
	ULONG APICALL (*AddHistogramA)(struct RenderIFace *Self, APTR histogram1, APTR histogram2, struct TagItem * taglist);
	ULONG APICALL (*AddHistogram)(struct RenderIFace *Self, APTR histogram1, APTR histogram2, ...);
	UWORD APICALL (*ScaleOrdinate)(struct RenderIFace *Self, UWORD source, UWORD dest, UWORD ordinate);
	ULONG * APICALL (*CreateHistogramPointerArray)(struct RenderIFace *Self, APTR histogram);
	ULONG APICALL (*CountHistogram)(struct RenderIFace *Self, APTR histogram);
	APTR APICALL (*CreateMapEngineA)(struct RenderIFace *Self, APTR palette, struct TagItem * taglist);
	APTR APICALL (*CreateMapEngine)(struct RenderIFace *Self, APTR palette, ...);
	void APICALL (*DeleteMapEngine)(struct RenderIFace *Self, APTR engine);
	ULONG APICALL (*MapRGBArrayA)(struct RenderIFace *Self, APTR engine, ULONG * rgb, UWORD width, UWORD height, UBYTE * chunky, struct TagItem * taglist);
	ULONG APICALL (*MapRGBArray)(struct RenderIFace *Self, APTR engine, ULONG * rgb, UWORD width, UWORD height, UBYTE * chunky, ...);
	LONG APICALL (*RGBArrayDiversityA)(struct RenderIFace *Self, ULONG * rgb, UWORD width, UWORD height, struct TagItem * taglist);
	LONG APICALL (*RGBArrayDiversity)(struct RenderIFace *Self, ULONG * rgb, UWORD width, UWORD height, ...);
	LONG APICALL (*ChunkyArrayDiversityA)(struct RenderIFace *Self, UBYTE * chunky, APTR palette, UWORD width, UWORD height, struct TagItem * taglist);
	LONG APICALL (*ChunkyArrayDiversity)(struct RenderIFace *Self, UBYTE * chunky, APTR palette, UWORD width, UWORD height, ...);
	ULONG APICALL (*MapChunkyArrayA)(struct RenderIFace *Self, APTR engine, UBYTE * source, APTR palette, UWORD width, UWORD height, UBYTE * dest, struct TagItem * taglist);
	ULONG APICALL (*MapChunkyArray)(struct RenderIFace *Self, APTR engine, UBYTE * source, APTR palette, UWORD width, UWORD height, UBYTE * dest, ...);
	void APICALL (*InsertAlphaChannelA)(struct RenderIFace *Self, UBYTE * maskarray, UWORD width, UWORD height, ULONG * rgbarray, struct TagItem * taglist);
	void APICALL (*InsertAlphaChannel)(struct RenderIFace *Self, UBYTE * maskarray, UWORD width, UWORD height, ULONG * rgbarray, ...);
	void APICALL (*ExtractAlphaChannelA)(struct RenderIFace *Self, ULONG * rgbarray, UWORD width, UWORD height, UBYTE * chunkyarray, struct TagItem * taglist);
	void APICALL (*ExtractAlphaChannel)(struct RenderIFace *Self, ULONG * rgbarray, UWORD width, UWORD height, UBYTE * chunkyarray, ...);
	void APICALL (*ApplyAlphaChannelA)(struct RenderIFace *Self, ULONG * sourcearray, UWORD width, UWORD height, ULONG * destarray, struct TagItem * taglist);
	void APICALL (*ApplyAlphaChannel)(struct RenderIFace *Self, ULONG * sourcearray, UWORD width, UWORD height, ULONG * destarray, ...);
	void APICALL (*MixRGBArrayA)(struct RenderIFace *Self, ULONG * sourcearray, UWORD width, UWORD height, ULONG * destarray, UWORD ratio, struct TagItem * taglist);
	void APICALL (*MixRGBArray)(struct RenderIFace *Self, ULONG * sourcearray, UWORD width, UWORD height, ULONG * destarray, UWORD ratio, ...);
	APTR APICALL (*AllocRenderVecClear)(struct RenderIFace *Self, APTR rendermemhandler, ULONG size);
	void APICALL (*CreateAlphaArrayA)(struct RenderIFace *Self, ULONG * rgbarray, UWORD width, UWORD height, struct TagItem * taglist);
	void APICALL (*CreateAlphaArray)(struct RenderIFace *Self, ULONG * rgbarray, UWORD width, UWORD height, ...);
	void APICALL (*MixAlphaChannelA)(struct RenderIFace *Self, ULONG * source1, ULONG * source2, UWORD width, UWORD height, ULONG * dest, struct TagItem * taglist);
	void APICALL (*MixAlphaChannel)(struct RenderIFace *Self, ULONG * source1, ULONG * source2, UWORD width, UWORD height, ULONG * dest, ...);
	void APICALL (*TintRGBArrayA)(struct RenderIFace *Self, ULONG * source, UWORD width, UWORD height, ULONG RGB, UWORD ratio, ULONG * dest, struct TagItem * taglist);
	void APICALL (*TintRGBArray)(struct RenderIFace *Self, ULONG * source, UWORD width, UWORD height, ULONG RGB, UWORD ratio, ULONG * dest, ...);
	ULONG APICALL (*GetPaletteAttrs)(struct RenderIFace *Self, APTR palette, ULONG args);
	void APICALL (*RemapArrayA)(struct RenderIFace *Self, UBYTE * source, UWORD width, UWORD height, UBYTE * dest, UBYTE * pentab, struct TagItem * taglist);
	void APICALL (*RemapArray)(struct RenderIFace *Self, UBYTE * source, UWORD width, UWORD height, UBYTE * dest, UBYTE * pentab, ...);
};

#endif /* RENDER_INTERFACE_DEF_H */
